STL associate container

연관 컨테이너(associate container)
활용도가 높은 자료구조를 제공한다.
키(Key)와 값(Value) 형태의 관련 있는 데이터를 쌍으로 저장하는 컨테이너이다.
가장 많이 사용되는 시컨스 컨테이너는 집합(Set)과 맵(Map)이다.
Set
Multi Set
Map
Multil map
집합(Set)
집합은 저장하는 데이터를 키로 사용하는 연관 컨테이너이다.
정렬된 위치에 데이터를 삽입한다는 점에서 검색 속도가 빠르다는 특징이 있다.
기본적으로 키의 중복을 허용하지 않음

집합은 추가된 자료에 대해서 오름차순으로 정렬함.
#include <iostream>
#include <set>
using namespace std;
int main(void){
int array[5]={2, 4, 6, 8, 10};
set<int> s(array, array+5);
set<int>::iterator iter=s.begin();
for(;iter!=s.end();iter++){
cout<<*iter<<' ';
}
cout<<'\n';
s.insert(1);
s.insert(3);
s.insert(5);
iter=s.begin();
for(;iter!=s.end();iter++){
cout<<*iter<<' ';
}
cout<<'\n';
system("puase");
return 0;
}

2 4 6 8 10 

1 2 3 4 5 6 8 10

맵(Map)
맵은 저장하는 데이터를 키(Key)와 값(Value) 쌍의 형태로 사용하는 연관 컨테이너이다.
정렬된 위치에 데이터를 삽입한다는 점에서 검색 속도가 빠르다는 특징이 있다.
기본적으로 키의 중복을 허용하지 않음
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main(void){
map<string, int> m;
m[""]=1; m[""]=2; m[""]=3;
map<string, int>::iterator iter=m.begin();
for(;iter!=m.end();iter++){
cout<<iter->first<<":"<<iter->second<<'\n';
}
m[""]=4;
cout<<m[" "]<<'\n'; // " " map (0)
iter=m.begin();
for(;iter!=m.end();iter++){
cout<<iter->first<<":"<<iter->second<<'\n';
}
system("pause");
return 0;
}

이순신:3

최정훈:1

홍길동:2

0

없는 사람:0

이순신:3

최민주:4

최정훈:1

홍길동:2